/**
 * Copyright &copy; 2012-2014 <a href="https://github.com/jims.his.>JeeSite</a> All rights reserved.
 */
package com.jims.master.modules.doctor.netHosptial.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jims.master.common.persistence.DataEntity;
import com.jims.master.modules.base.user.entity.MasterBaseinfo;
import com.jims.master.modules.sys.entity.SysOrgDict;
import org.hibernate.validator.constraints.Length;

import java.util.Date;


/**
 * 病人主索引Entity
 *
 * @author zhaoning
 * @version 2015-06-26
 */
public class NetPatMaster extends DataEntity<NetPatMaster> {
    private static final long serialVersionUID = 1L;
    private String patientId;        // 病人标识号
    private String inpNo;        // 住院号
    private String type;         //1:门诊;2:住院;3:体检;4:义诊;
    private String name;        // 姓名
    private String namePhonetic;        // 姓名拼音
    private String sex;        // 性别
    private Date dateOfBirth;        // 出生日期
    private String dateOfBirthStr;        // 出生日期
    private String birthPlace;        // 出生地
    private String citizenship;        // 国籍
    private String nation;        // 民族
    private String idNo;        // 身份证号
    private String identity;        // 身份
    private String chargeType;        // 费别
    private String unitInContract;        // 合同单位
    private String mailingAddress;        // （通信地址）户口地址
    private String zipCode;        // 邮政编码
    private String phoneNumberHome;        // 家庭电话号码
    private String phoneNumberBusiness;        // 单位电话号码
    private String nextOfKin;        // 联系人姓名
    private String relationship;        // 与联系人关系
    private String nextOfKinAddr;        // 联系人地址
    private String nextOfKinZipCode;        // 联系人邮政编码
    private String nextOfKinPhone;        // 联系人电话号码
    private Date lastVisitDate;        // 上次就诊日期
    private Integer vipIndicator;        // 重要人物标志
    private String operator;        // 操作员
    private String serviceAgency;        // 医疗体系病人标志
    private String businessZipCode;        // 单位邮编
    private String photo;        // 照片
    private String patientClass;        // 入院来源
    private String degree;        // 学历
    private String race;        // 种族
    private String religion;        // 宗教
    private String motherLanguage;        // 母语
    private String foreignLanguage;        // 第二外语
    private String idType;        // 证件类型
    private String vipNo;        // 会员号
    private String eName;        // 英文名字
    private String occupation;        // occupation
    private String nextOfSex;        // next_of_sex
    private String nextOfId;        // next_of_id
    private String nextOfBath;        // next_of_bath
    private String insurNhNo;        // insur_nh_no
    private String nativePlace;        // native_place
    private String insuranceNo;        // 户口地址乡镇/街道代码
    private String mailingAddressCode;        // 户口地址行政区划
    private String healthyCardNo;        // healthy_card_no
    private String alergyDrugs;        // alergy_drugs
    private String mailingStreetCode;        // mailing_street_code
    private Double account;        // 帐户余额
    private String alergy;        // 过敏史
    private String maritalStatus;        // 婚姻状况
    private String insuranceType;        // 医保类型
    private Integer specialLag;        // 医保编号
    private String hospNo;                    //所属机构
    private Date startDate;
    private Date endDate;
    private String age;
    private String loginName;                 //登记人在his分配的用户名
    //增加
    private NetClinicMaster clinicMaster;
    //private PatVisit patVisit;
    private MasterBaseinfo baseInfo;

    public SysOrgDict sysOrgDict;

    public NetPatMaster() {
        super();
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    @Length(min = 1, max = 10, message = "病人标识号长度必须介于 1 和 10 之间")
    public String getPatientId() {
        return patientId;
    }

    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }


    public NetClinicMaster getClinicMaster() {
        return clinicMaster;
    }

    public void setClinicMaster(NetClinicMaster clinicMaster) {
        this.clinicMaster = clinicMaster;
    }

    /*public PatVisit getPatVisit() {
        return patVisit;
    }

    public void setPatVisit(PatVisit patVisit) {
        this.patVisit = patVisit;
    }*/

    @Length(min = 0, max = 10, message = "住院号长度必须介于 0 和 10 之间")
    public String getInpNo() {
        return inpNo;
    }

    public void setInpNo(String inpNo) {
        this.inpNo = inpNo;
    }

    @Length(min = 0, max = 20, message = "姓名长度必须介于 0 和 20 之间")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Length(min = 0, max = 16, message = "姓名拼音长度必须介于 0 和 16 之间")
    public String getNamePhonetic() {
        return namePhonetic;
    }

    public void setNamePhonetic(String namePhonetic) {
        this.namePhonetic = namePhonetic;
    }

    @Length(min = 0, max = 4, message = "性别长度必须介于 0 和 4 之间")
    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getDateOfBirth() {
        return dateOfBirth;
    }

    public void setDateOfBirth(Date dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }

    @Length(min = 0, max = 100, message = "合同单位长度必须介于 0 和 100 之间")
    public String getBirthPlace() {
        return birthPlace;
    }

    public void setBirthPlace(String birthPlace) {
        this.birthPlace = birthPlace;
    }

    @Length(min = 0, max = 2, message = "通信地址长度必须介于 0 和 2 之间")
    public String getCitizenship() {
        return citizenship;
    }

    public void setCitizenship(String citizenship) {
        this.citizenship = citizenship;
    }

    @Length(min = 0, max = 10, message = "邮政编码长度必须介于 0 和 10 之间")
    public String getNation() {
        return nation;
    }

    public void setNation(String nation) {
        this.nation = nation;
    }

    @Length(min = 0, max = 18, message = "家庭电话号码长度必须介于 0 和 18 之间")
    public String getIdNo() {
        return idNo;
    }

    public void setIdNo(String idNo) {
        this.idNo = idNo;
    }

    @Length(min = 0, max = 10, message = "单位电话号码长度必须介于 0 和 10 之间")
    public String getIdentity() {
        return identity;
    }

    public void setIdentity(String identity) {
        this.identity = identity;
    }

    @Length(min = 0, max = 8, message = "费别长度必须介于 0 和 8 之间")
    public String getChargeType() {
        return chargeType;
    }

    public void setChargeType(String chargeType) {
        this.chargeType = chargeType;
    }

    @Length(min = 0, max = 11, message = "合同单位长度必须介于 0 和 11 之间")
    public String getUnitInContract() {
        return unitInContract;
    }

    public void setUnitInContract(String unitInContract) {
        this.unitInContract = unitInContract;
    }

    @Length(min = 0, max = 200, message = "（通信地址）户口地址长度必须介于 0 和 200 之间")
    public String getMailingAddress() {
        return mailingAddress;
    }

    public void setMailingAddress(String mailingAddress) {
        this.mailingAddress = mailingAddress;
    }

    @Length(min = 0, max = 6, message = "邮政编码长度必须介于 0 和 6 之间")
    public String getZipCode() {
        return zipCode;
    }

    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }

    @Length(min = 0, max = 16, message = "家庭电话号码长度必须介于 0 和 16 之间")
    public String getPhoneNumberHome() {
        return phoneNumberHome;
    }

    public void setPhoneNumberHome(String phoneNumberHome) {
        this.phoneNumberHome = phoneNumberHome;
    }

    @Length(min = 0, max = 16, message = "单位电话号码长度必须介于 0 和 16 之间")
    public String getPhoneNumberBusiness() {
        return phoneNumberBusiness;
    }

    public void setPhoneNumberBusiness(String phoneNumberBusiness) {
        this.phoneNumberBusiness = phoneNumberBusiness;
    }

    @Length(min = 0, max = 20, message = "联系人姓名长度必须介于 0 和 20 之间")
    public String getNextOfKin() {
        return nextOfKin;
    }

    public void setNextOfKin(String nextOfKin) {
        this.nextOfKin = nextOfKin;
    }

    @Length(min = 0, max = 2, message = "与联系人关系长度必须介于 0 和 2 之间")
    public String getRelationship() {
        return relationship;
    }

    public void setRelationship(String relationship) {
        this.relationship = relationship;
    }

    @Length(min = 0, max = 100, message = "联系人地址长度必须介于 0 和 100 之间")
    public String getNextOfKinAddr() {
        return nextOfKinAddr;
    }

    public void setNextOfKinAddr(String nextOfKinAddr) {
        this.nextOfKinAddr = nextOfKinAddr;
    }

    @Length(min = 0, max = 6, message = "联系人邮政编码长度必须介于 0 和 6 之间")
    public String getNextOfKinZipCode() {
        return nextOfKinZipCode;
    }

    public void setNextOfKinZipCode(String nextOfKinZipCode) {
        this.nextOfKinZipCode = nextOfKinZipCode;
    }

    @Length(min = 0, max = 16, message = "联系人电话号码长度必须介于 0 和 16 之间")
    public String getNextOfKinPhone() {
        return nextOfKinPhone;
    }

    public void setNextOfKinPhone(String nextOfKinPhone) {
        this.nextOfKinPhone = nextOfKinPhone;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getLastVisitDate() {
        return lastVisitDate;
    }

    public void setLastVisitDate(Date lastVisitDate) {
        this.lastVisitDate = lastVisitDate;
    }

    public Integer getVipIndicator() {
        return vipIndicator;
    }

    public void setVipIndicator(Integer vipIndicator) {
        this.vipIndicator = vipIndicator;
    }

    @Length(min = 0, max = 20, message = "操作员长度必须介于 0 和 20 之间")
    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    @Length(min = 0, max = 40, message = "医疗体系病人标志长度必须介于 0 和 40 之间")
    public String getServiceAgency() {
        return serviceAgency;
    }

    public void setServiceAgency(String serviceAgency) {
        this.serviceAgency = serviceAgency;
    }

    @Length(min = 0, max = 6, message = "business_zip_code长度必须介于 0 和 6 之间")
    public String getBusinessZipCode() {
        return businessZipCode;
    }

    public void setBusinessZipCode(String businessZipCode) {
        this.businessZipCode = businessZipCode;
    }

    @Length(min = 0, max = 20, message = "photo长度必须介于 0 和 20 之间")
    public String getPhoto() {
        return photo;
    }

    public void setPhoto(String photo) {
        this.photo = photo;
    }

    @Length(min = 0, max = 1, message = "patient_class长度必须介于 0 和 1 之间")
    public String getPatientClass() {
        return patientClass;
    }

    public void setPatientClass(String patientClass) {
        this.patientClass = patientClass;
    }

    @Length(min = 0, max = 10, message = "degree长度必须介于 0 和 10 之间")
    public String getDegree() {
        return degree;
    }

    public void setDegree(String degree) {
        this.degree = degree;
    }

    @Length(min = 0, max = 10, message = "race长度必须介于 0 和 10 之间")
    public String getRace() {
        return race;
    }

    public void setRace(String race) {
        this.race = race;
    }

    @Length(min = 0, max = 16, message = "religion长度必须介于 0 和 16 之间")
    public String getReligion() {
        return religion;
    }

    public void setReligion(String religion) {
        this.religion = religion;
    }

    @Length(min = 0, max = 16, message = "mother_language长度必须介于 0 和 16 之间")
    public String getMotherLanguage() {
        return motherLanguage;
    }

    public void setMotherLanguage(String motherLanguage) {
        this.motherLanguage = motherLanguage;
    }

    @Length(min = 0, max = 16, message = "foreign_language长度必须介于 0 和 16 之间")
    public String getForeignLanguage() {
        return foreignLanguage;
    }

    public void setForeignLanguage(String foreignLanguage) {
        this.foreignLanguage = foreignLanguage;
    }

    @Length(min = 0, max = 10, message = "id_type长度必须介于 0 和 10 之间")
    public String getIdType() {
        return idType;
    }

    public void setIdType(String idType) {
        this.idType = idType;
    }

    @Length(min = 0, max = 18, message = "vip_no长度必须介于 0 和 18 之间")
    public String getVipNo() {
        return vipNo;
    }

    public void setVipNo(String vipNo) {
        this.vipNo = vipNo;
    }

    @Length(min = 0, max = 100, message = "入院科室长度必须介于 0 和 100 之间")
    public String getEName() {
        return eName;
    }

    public void setEName(String eName) {
        this.eName = eName;
    }

    @Length(min = 0, max = 100, message = "occupation长度必须介于 0 和 100 之间")
    public String getOccupation() {
        return occupation;
    }

    public void setOccupation(String occupation) {
        this.occupation = occupation;
    }

    @Length(min = 0, max = 4, message = "next_of_sex长度必须介于 0 和 4 之间")
    public String getNextOfSex() {
        return nextOfSex;
    }

    public void setNextOfSex(String nextOfSex) {
        this.nextOfSex = nextOfSex;
    }

    @Length(min = 0, max = 18, message = "next_of_id长度必须介于 0 和 18 之间")
    public String getNextOfId() {
        return nextOfId;
    }

    public void setNextOfId(String nextOfId) {
        this.nextOfId = nextOfId;
    }

    @Length(min = 0, max = 18, message = "next_of_bath长度必须介于 0 和 18 之间")
    public String getNextOfBath() {
        return nextOfBath;
    }

    public void setNextOfBath(String nextOfBath) {
        this.nextOfBath = nextOfBath;
    }

    @Length(min = 0, max = 18, message = "insur_nh_no长度必须介于 0 和 18 之间")
    public String getInsurNhNo() {
        return insurNhNo;
    }

    public void setInsurNhNo(String insurNhNo) {
        this.insurNhNo = insurNhNo;
    }

    @Length(min = 0, max = 6, message = "native_place长度必须介于 0 和 6 之间")
    public String getNativePlace() {
        return nativePlace;
    }

    public void setNativePlace(String nativePlace) {
        this.nativePlace = nativePlace;
    }

    @Length(min = 0, max = 18, message = "户口地址乡镇/街道代码长度必须介于 0 和 18 之间")
    public String getInsuranceNo() {
        return insuranceNo;
    }

    public void setInsuranceNo(String insuranceNo) {
        this.insuranceNo = insuranceNo;
    }

    @Length(min = 0, max = 30, message = "户口地址行政区划长度必须介于 0 和 30 之间")
    public String getMailingAddressCode() {
        return mailingAddressCode;
    }

    public void setMailingAddressCode(String mailingAddressCode) {
        this.mailingAddressCode = mailingAddressCode;
    }

    @Length(min = 0, max = 30, message = "healthy_card_no长度必须介于 0 和 30 之间")
    public String getHealthyCardNo() {
        return healthyCardNo;
    }

    public void setHealthyCardNo(String healthyCardNo) {
        this.healthyCardNo = healthyCardNo;
    }

    @Length(min = 0, max = 100, message = "alergy_drugs长度必须介于 0 和 100 之间")
    public String getAlergyDrugs() {
        return alergyDrugs;
    }

    public void setAlergyDrugs(String alergyDrugs) {
        this.alergyDrugs = alergyDrugs;
    }

    @Length(min = 0, max = 15, message = "mailing_street_code长度必须介于 0 和 15 之间")
    public String getMailingStreetCode() {
        return mailingStreetCode;
    }

    public void setMailingStreetCode(String mailingStreetCode) {
        this.mailingStreetCode = mailingStreetCode;
    }

    public Double getAccount() {
        return account;
    }

    public void setAccount(Double account) {
        this.account = account;
    }

    @Length(min = 0, max = 8, message = "过敏史长度必须介于 0 和 8 之间")
    public String getAlergy() {
        return alergy;
    }

    public void setAlergy(String alergy) {
        this.alergy = alergy;
    }

    @Length(min = 0, max = 8, message = "婚姻状况长度必须介于 0 和 8 之间")
    public String getMaritalStatus() {
        return maritalStatus;
    }

    public void setMaritalStatus(String maritalStatus) {
        this.maritalStatus = maritalStatus;
    }

    @Length(min = 0, max = 32, message = "医保类型长度必须介于 0 和 32 之间")
    public String getInsuranceType() {
        return insuranceType;
    }

    public void setInsuranceType(String insuranceType) {
        this.insuranceType = insuranceType;
    }

    public Integer getSpecialLag() {
        return specialLag;
    }

    public void setSpecialLag(Integer specialLag) {
        this.specialLag = specialLag;
    }

    public String getHospNo() {
        return hospNo;
    }

    public void setHospNo(String hospNo) {
        this.hospNo = hospNo;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public MasterBaseinfo getBaseInfo() {
        return baseInfo;
    }

    public void setBaseInfo(MasterBaseinfo baseInfo) {
        this.baseInfo = baseInfo;
    }

    public String getDateOfBirthStr() {
        return dateOfBirthStr;
    }

    public void setDateOfBirthStr(String dateOfBirthStr) {
        this.dateOfBirthStr = dateOfBirthStr;
    }

    public String geteName() {
        return eName;
    }

    public void seteName(String eName) {
        this.eName = eName;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public SysOrgDict getSysOrgDict() {
        return sysOrgDict;
    }

    public void setSysOrgDict(SysOrgDict sysOrgDict) {
        this.sysOrgDict = sysOrgDict;
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }
}